Developer | Be Inc. |
---|---|
Full name | Be File System |
Introduced | May 10, 1997 (BeOS Advanced Access Preview Release[1]) |
Partition identifier | Be_BFS (Apple Partition Map) 0xEB (MBR) |
Structures | |
Directory contents | B+ tree |
File allocation | inodes |
Bad blocks | inodes |
Limits | |
Max file size | ~260 GB * |
Max number of files | Unlimited |
Max filename length | 255 characters |
Max volume size | ~2 EB * |
Allowed characters in filenames | All UTF-8 but "/" |
Features | |
Dates recorded | Access, Creation, Modified |
Date range | Unknown |
Date resolution | 1s |
Forks | Yes |
Attributes | POSIX ACLs: Read, Write, Execute |
File system permissions | Yes, POSIX (RWX per owner, group and all) |
Transparent compression | No |
Transparent encryption | No |
Supported operating systems | BeOS, ZETA, Haiku, SkyOS, Syllable |
The Be File System (BFS, occasionally misnamed as BeFS — the name BeFS is used in the Linux kernel to avoid any confusion with Boot File System) is the native file system for the BeOS.
BFS was developed by Dominic Giampaolo and Cyril Meurillon over a ten month period, starting in September 1996,[2] to provide BeOS with a modern 64-bit capable journaling file system.[3] It is case sensitive and capable of being used on floppy, hard disks and read-only media such as CD-ROMs, although its use on small removable media is not advised, as the file system headers consume from 600 kB to 2 MB, rendering floppy disks virtually useless.
Like its predecessor, OFS (Old Be File System, written by Benoit Schillings, was also called BFS when current),[4] it includes support for extended file attributes (metadata) with indexing and querying characteristics to provide functionality similar to that of a relational database.
Whilst intended as a 64-bit capable file system, the size of some on-disk structures mean that practical size limit is approximately 2 exabytes. Similarly the extent based file allocation reduces the maximum practical file size to approximately 260 gigabytes at best and as little as a few blocks in a pathological worst case, depending on the degree of fragmentation.
Its design process, application programming interface, and internal workings are, for the most part, documented in the book Practical File System Design with the Be File System.[2]
Contents |
In addition to the original 1996 BFS used in BeOS, there are several implementations for Linux. In early 1999, Makoto Kato developed a Be File System driver for Linux; however, the driver never reached a complete stable state, so in 2001 Will Dyson developed his own version of the Linux BFS driver.[5]
As part of the OpenBeOS attempt (now Haiku) to recreate the BeOS operating system, in 2002 Axel Dörfler and a few other developers created and released a reimplemented BFS called OpenBFS.[6] In January 2004, Robert Szeleney announced that he had developed a fork of this OpenBFS file system for use in his SkyOS operating system.[7] The regular OpenBFS implementation was also ported to Syllable and is included since version 0.6.5.